#字典的定义
# 空字典  用{}定义： 字典变量名 = {}
# 字典中的键一般使用字符串，其中键名不能重复（重复了数据会被覆盖）
# 字典中的数据俗称“键值对”
# 字典变量名 = dict()

# 定义空字典
info = {}
info1 = dict()
print(type(info),type(info1))
print(info)

# 非空字典
info2 = {"姓名":"张睿","年龄":23,"身高":1.78}
print(info2)
print(type(info2))



# 字典的使用
# 字典中键存在则修改值，键不存在则新增值
info = {"name":"张三"}
info["name"] = "李四"
print(info)
info["age"] = 33
print(info)

# 字典删除值
# 语法格式： 字典名.pop(键)
# 键存在删除对应值，键不存在，则代码报错
info = {"name":"李四","age":22,"height":1.88,"hoppy":"打羽毛球"}
info.pop("age")
print(info)
# info.pop("sex")

# 字典中取值
# 变量 = 字典名[键]
# 变量 = 字典名.get(键)
# 格式1键存在返回对应值，键不存在，则代码报错
# 格式2键存在返回对应值，键不存在，则返回None（空值）

# 定义非空字典
info = {
    "name":"汤姆",
    "age":29,
    "sex":"男",
    "hobby":{"read":"小说","sport":["篮球","足球"]}
}
aa = info["age"]
print(aa)
print(info["age"])
print(info.get("age"))
print(info.get("height"))#键存在返回对应值，键不存在，则返回None（空值）

print(info["hobby"]["sport"][0])
print(info.get("hobby").get("sport")[1])


# 字典的合并/新增
# 字典2.update(字典1)
dict = {"name":"张三","age":19}
dict1 = {"height":1.78}
dict.update(dict1)
print(dict)


# 字典的遍历
# 遍历字典键：
# 语法格式： for 临时变量 in 字典名.keys():
# 说明：取出字典中的所有键，容器后面可以不写 .keys()
# 遍历字典值：
# 语法格式： for 临时变量 in 字典名.values():
# 说明：取出字典中的所有值
# 遍历键和值：
# 语法格式： for 键变量,值变量 in 字典名.items():
# 说明：取出字典中的所有键和值
# 定义非空字典
info = {
"name": "tom",
"age": 18,
"gender": "男"
}

for i in info.keys():# 遍历获取字典中所有键
    print(f"字典的键是：{i}")

for i in info.values():# 遍历获取字典中所有值
    print(f"字典的值是：{i}")

for k, v in info.items():# 遍历获取字典的键和值
    print(f"{k} = {v}")